<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 原型式继承 不自定义类型，临时创建一个构造函数，借助已有的对象作为临时构造函数的原型吗，然后在此基础实例化对象，并返回。
        // 本质上，是object() 对传入其中的对象执行了一次浅复制（浅拷贝）
        // 当只想单纯地让一个对象与另一个对象保持类似的请况下，原型式继承是完全可以胜任的，
        function object(o) {
            function F() {}
            F.prototype = o;
            return new F()
        }
        var person = {
            name: 'Nicholas',
            friends: ['Shelby', 'Court', 'Van']
        }
        var anotherPerson = object(person)
        anotherPerson.name = 'Greg'
        anotherPerson.friends.push('Rob')

        var yetAnotherPerson = object(person)
        yetAnotherPerson.name = 'Linda'
        yetAnotherPerson.friends.push('Barbie')

        console.log(person.friends);
    </script>
</body>

</html>